home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / machack / Hacks97 / WarriorsProgress.sit / Warrior’s Progress / source code / Source / Libraries / Strings / Str.h < prev    next >
Text File  |  1997-06-28  |  3KB  |  113 lines

  1. // Str.h
  2.  
  3. #ifndef Str_h
  4. #define Str_h
  5.  
  6. #ifndef PString_h
  7. #include "PString.h"
  8. #endif
  9.  
  10. template < uint32 size >
  11. class Str: public PString
  12.   {
  13.     protected:
  14.         uint8 characters[ size + 1 ];
  15.     
  16.     public:
  17.         Str()                                    : PString( Data( characters, size+1 ) )            { Clear(); }
  18.         Str( PString text )                : PString( Data( characters, size+1 ), text )    {}
  19.         Str( ConstPString text )        : PString( Data( characters, size+1 ), text )    {}
  20.         Str( ConstStr255Param text )    : PString( Data( characters, size+1 ), text )    {}
  21.         Str( ConstData text )            : PString( Data( characters, size+1 ), text )    {}
  22.   };
  23.  
  24. class String255: public Str<255>
  25.   {
  26.     public:
  27.         String255()                                                                {}
  28.         String255( PString text )                : Str<255>( text )    {}
  29.         String255( ConstPString text )        : Str<255>( text )    {}
  30.         String255( ConstStr255Param text )    : Str<255>( text )    {}
  31.         String255( ConstData text )            : Str<255>( text )    {}
  32.         
  33.         operator StringPtr()                { return characters; }
  34.         operator Str255&()                { return characters; }
  35.         operator Str63&()                    { return characters; }
  36.         operator Str32&()                    { return characters; }
  37.         operator Str31&()                    { return characters; }
  38.         operator Str27&()                    { return characters; }
  39.         operator Str15&()                    { return characters; }
  40.   };
  41.  
  42. class String63: public Str<63>
  43.   {
  44.     public:
  45.         String63()                                                                {}
  46.         String63( PString text )                : Str<63>( text )        {}
  47.         String63( ConstPString text )            : Str<63>( text )        {}
  48.         String63( ConstStr255Param text )    : Str<63>( text )        {}
  49.         String63( ConstData text )                : Str<63>( text )        {}
  50.         
  51.         operator Str63&()                    { return characters; }
  52.         operator Str32&()                    { return characters; }
  53.         operator Str31&()                    { return characters; }
  54.         operator Str27&()                    { return characters; }
  55.         operator Str15&()                    { return characters; }
  56.   };
  57.  
  58. class String32: public Str<32>
  59.   {
  60.     public:
  61.         String32()                                                                {}
  62.         String32( PString text )                : Str<32>( text )        {}
  63.         String32( ConstPString text )            : Str<32>( text )        {}
  64.         String32( ConstStr255Param text )    : Str<32>( text )        {}
  65.         String32( ConstData text )                : Str<32>( text )        {}
  66.         
  67.         operator Str32&()                    { return characters; }
  68.         operator Str31&()                    { return characters; }
  69.         operator Str27&()                    { return characters; }
  70.         operator Str15&()                    { return characters; }
  71.   };
  72.  
  73. class String31: public Str<31>
  74.   {
  75.     public:
  76.         String31()                                                                {}
  77.         String31( PString text )                : Str<31>( text )        {}
  78.         String31( ConstPString text )            : Str<31>( text )        {}
  79.         String31( ConstStr255Param text )    : Str<31>( text )        {}
  80.         String31( ConstData text )                : Str<31>( text )        {}
  81.         
  82.         operator Str31&()                    { return characters; }
  83.         operator Str27&()                    { return characters; }
  84.         operator Str15&()                    { return characters; }
  85.   };
  86.  
  87. class String27: public Str<27>
  88.   {
  89.     public:
  90.         String27()                                                                {}
  91.         String27( PString text )                : Str<27>( text )        {}
  92.         String27( ConstPString text )            : Str<27>( text )        {}
  93.         String27( ConstStr255Param text )    : Str<27>( text )        {}
  94.         String27( ConstData text )                : Str<27>( text )        {}
  95.         
  96.         operator Str27&()                    { return characters; }
  97.         operator Str15&()                    { return characters; }
  98.   };
  99.  
  100. class String15: public Str<15>
  101.   {
  102.     public:
  103.         String15()                                                                {}
  104.         String15( PString text )                : Str<15>( text )        {}
  105.         String15( ConstPString text )            : Str<15>( text )        {}
  106.         String15( ConstStr255Param text )    : Str<15>( text )        {}
  107.         String15( ConstData text )                : Str<15>( text )        {}
  108.         
  109.         operator Str15&()                    { return characters; }
  110.   };
  111.  
  112. #endif
  113.